The present invention relates to receivers of real-time data, such as receivers designed to receive high-quality video and/or audio data streams as one of multiple receiving computers on a network such as a local area network (LAN), a wide area network (WAN), a large corporate internetwork, or the Internet.
Video broadcasting is a way to distribute live or prerecorded video programming to large numbers of users over a digital network without creating network bottlenecks. Video broadcasting lets an organization set up corporate TV network accessible to an essentially unlimited number of users at their personal computers over enterprise LANs and WANs. In video broadcasting, a single video stream (including audio) is distributed using a technique known as IP Multicast, an IETF (Internet Engineering Task Force) standard. Any user wishing to join a multicast session can tap into it from a desktop personal computer at any time during the broadcast, and can leave the session at any time. This technique is highly efficient because it does not consume more bandwidth as the number of users increases.
A number of specifications have been published related to video broadcasting, and a number of broadcasting applications have been made available. These include the following Internet RFCs: RFC-1112, "Host Extensions for IP Multicasting", August 1989; and RFC-1889 "RTP: A Transport Protocol for Real-Time Applications", January 1996. Available applications include VAT, an audio conferencing application, and VIC, a video conferencing application, for which source code is available from the Network Research Group of Lawrence Berkeley National Laboratory
(http://www-nrg.ee.lbl.gov/vat/ and PA0 http://www-nrg.ee.lbl.gov/vic/).
In video broadcasting, generally both video and audio are sent from a server to the client or clients over a transmission medium. The video and audio data are generally in a compressed form, and so must be decompressed on the client side. On the server side, the source of data may have video and audio interleaved together, either in a data file or from a live encoder.
The data can be transmitted either with or without splitting the audio data on the server. If the data are split on the server, each stream is transmitted independently to unique ports on the transmission medium. (A port is a logical channel in a communications system. The Internet TCP and UDP transport layer protocols use port numbers to demultiplex messages.) Otherwise, the data is split on the client, in either case generating packets of encoded audio and video data.
Audio and video compression create an encoded bitstream that is segmented into packets of encoded data. A transmission medium will generally also transmit data in packets, and typically one or more packets of compression encoded data can fit into a transmission medium packet.
The transmitted video data is synchronized to the audio data. Synchronization between video and audio is generally established by the use of time stamps, which are attached to each encoded data packet.